﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using br.com.SistemaChamados.Controller;
using br.com.SistemaChamados.Model;
using br.com.SistemaChamados.Enum;

public partial class Pages_UnitUpdate : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            string code = Session["id"].ToString();
            br.com.SistemaChamados.Model.Unit unit = new br.com.SistemaChamados.Model.Unit();
            unit.Id = Convert.ToInt32(code);
            UnitController Controller = new UnitController();
            br.com.SistemaChamados.Model.Unit returnedUnit = new br.com.SistemaChamados.Model.Unit();
            try
            {
                returnedUnit = Controller.GetUnit(unit);
                if (returnedUnit != null)
                {
                    txbName.Text = returnedUnit.Name;
                }
            }
            catch (Exception ex)
            {
                Response.Write(@"<script language='javascript'>alert('Ocorreu um erro no carregamento da tela: <br>" + ex.Message +
                                   ".');</script>");
            }
        }
    }
    protected void txbInsert_Click(object sender, EventArgs e)
    {
        br.com.SistemaChamados.Model.Unit unitUpdate = new br.com.SistemaChamados.Model.Unit();
        UnitController Controller = new UnitController();
        try
        {
            if (Controller.UpdateUnit(populateObject(unitUpdate)) == EnumGenericState.GENERIC_STATE_SUCCESS)
            {
                Response.Write(@"<script language='javascript'>alert('Unidade Corrigida com Sucesso!');</script>");
                ClearFields();
            }
            else
            {
                Response.Write(@"<script language='javascript'>alert('Ocorreu um erro durante a correção, por favor tente novamente!');</script>");
            }
        }
        catch (Exception ex)
        {
            Response.Write(@"<script language='javascript'>alert('Ocorreu um erro na correção: <br>" + ex.Message +
                               ".');</script>");
            unitUpdate = null;
        }
        finally
        {
            Response.Redirect("UnitMain.aspx");
            Session.Remove("id");

        }
    }
    private br.com.SistemaChamados.Model.Unit populateObject(br.com.SistemaChamados.Model.Unit unitUpdate)
    {
        string id = Session["id"].ToString();
        unitUpdate.Id = Convert.ToInt32(id);
        unitUpdate.Name = txbName.Text;
        return unitUpdate;
    }

    public void ClearFields()
    {
        txbName.Text = "";
        txbName.Focus();
    }
}